本文使用的是文本方式安装DB2 V9.7
主要流程:
(1)解压安装包
(2)执行安装程序
(3)创建3个用户,分别是实例用户、受限用户、管理用户
(4)创建一个管理服务器
(5)创建一个实例
(6)配置DB2参数
1、安装DB2准备工作
获得安装包v9.7_linuxia32_server.tar.gz
执行解压缩 tar -zxvf v9.7_linuxia32_server.tar.gz
2、执行安装程序
进入到解压后的server文件夹
cd / server
./DB2_install
选择”否“
3、新建组和用户
创建组
#groupadd db2iadm1
#groupadd db2fadm1
#groupadd dasadm1
创建用户
#useradd -g db2iadm1 -m -d /home/db2inst1 db2inst1
#useradd -g db2fadm1 -m -d /home/db2fenc1 db2fenc1
#useradd -g dasadm1 -m -d /home/dasusr1 dasusr1
修改用户密码
#passwd db2inst1
#passwd db2fenc1
#passwd dasusr1
4、创建管理服务器
# /opt/ibm/DB2/V9.7/instance/dascrt -u dasusr1
创建一个实例
#/opt/ibm/DB2/V9.7/instance/DB2icrt -a SERVER -u db2fenc1 db2inst1
5、配置DB2
(1) 对DB2进行配置
#vi /etc/rc.local
在touch /var/lock/subsys/local的后面加上以下内容
#su - DB2inst1 -c "DB2start"
(2) 修改sysctl.conf文件
#vi /etc/sysctl.conf
kernel.msgmni = 1024
kernel.sem = 250 256000 32 1024
(3) 修改limits.conf文件,修改文件中soft nofile的值
#vi /etc/security/limits.conf
* soft nofile 10240
10240 打开文件的最大数目
改动完成后要重新启动服务器
以上是安装全过程,至此如果我们还需要添加多用户,只需按下列步骤操作(只演示一个用户的例子):
添加一个新用户zry到db2iadm1组:
useradd -g db2iadm1 -m -d /home/zry zry
passwd zry (为用户设置密码)
2.切换到root 用户为zry 建立实例:
su root
/opt/ibm/DB2/V9.7/instance/DB2icrt -a SERVER -u zry zry *(实例名长度不能超过八位)
这样就为zry 用户创建了一个名为zry实例,而这个实例的管理员也就是zry.
切换到zry用户下就可以启动和管理zry实例了
su zry
db2start
配置DB2 V9.7客户端与服务器端通信
我们要让程序链接上DB2服务器首先必须在本机上安装DB2 V9.7 客户端,编目服务器上的数据库到本地客户端,这样我们就可以在程序中直接操作DB2数据库了.
- 安装DB2 V9.7 客户机
………图形界面….过程省略……
- 配置DB2 服务器参数
(1) 使用用户zry登陆系统. 启动对应的实例:
db2start
cat /etc/services 查找此文件。新建的用户一般会出现在最后几行:
DB2_zry 60032/tcp
DB2_zry_1 60033/tcp
DB2_zry_2 60034/tcp
DB2_zry_END 60035/tcp
发现 DB2_zry 60032/tcp. 端口为: 60032 / tcp协议.
(2) 查找DB2配置文件中的端口配置
db2 get dbm cfg | grep SVCENAME
如出现:
TCP/IP Service name (SVCENAME) =
SSL service name (SSL_SVCENAME) =
说明端口没有配置.使用以下命令:
db2 update dbm cfg using svcename 60032
把DB2_zry的端口添加进去.
并使用db2set db2comm=tcpip 命令,设置为TCPIP协议
重启实例:
db2stop db2star
db2 get dbm cfg | grep SVCENAME
结果:
TCP/IP Service name (SVCENAME) = 60032
SSL service name (SSL_SVCENAME) =
db2set –all
结果:
[i] DB2COMM=tcpip
netstat -an | grep 60032
结果:
tcp 0 0 0.0.0.0:60032 0.0.0.0:* LISTEN
出现以上三条结果,说明服务器配置已经成功,60032端口正在被监听.
(3) 客户端编目
客户端进入db2cmd,
(3.1) 通过tcpip协议 端口进行编目节点( ibmClass 是远程主机名,也就是服务器主机名, 172.x.x.x 是服务器IP)
db2 catalog tcpip node ibmClass remote 172.24.10.151 server 60032
db2 list node directory:
节点目录
目录中的条目数 = 1
节点 1 条目:
节点名 = IBMCLASS
注释 =
目录条目类型 = LOCAL
协议 = TCPIP
主机名 = 172.24.10.151
服务名称 = 60032
出现以上结果则表明编目节点成功
(3.2) 通过节点编目数据库到本机 (假设实例里存在SAMPLE数据库)
db2 catalog db sample at node ibmClass
db2 list db directory
数据库 1 条目:
数据库别名 = SAMPLE
数据库名称 = SAMPLE
节点名 = IBMCLASS
数据库发行版级别 = d.00
注释 =
目录条目类型 = 远程
目录数据库分区号 = -1
备用服务器主机名 =
备用服务器端口号 =
出现以上结果则表明编目数据库成功。
现在,我们可以在本机直接操作sample数据库了. 可以直接在db2cmd里写测试语句进行相应的测试.(注意: 记得操作数据库需要先connect哦. 如下:
db2 connect to sample user zry(用户) using ibm.zhourongyu(密码),需要拥有实例权限的用户才可以,在这里也就是zry 用户.)
使用JAVA程序连接DB2V9.7测试
我把测试程序也写上来供大家参考,和Mysql区别不大………..
import java.sql.*;
/**
* @Create Time:2010-8-31 下午21:43:57
* @author ZhouRongyu
* © 2010-2015 zhourongyu. All rights reserved
*/
public class JDBCConnectTest {
// Connection to DB2 V9.7
private static Connection newcon = null;
public static void main(String[] args)
{
try {
ConnectV9_7();
} catch (Exception ex) {
ex.printStackTrace();
}
}
private static void ConnectV9_7()
{
try {
Class.forName("com.ibm.db2.jcc.DB2Driver");
newcon = DriverManager.getConnection(
"jdbc:db2://172.24.10.151:60032/sample",
"zry","ibm.zhourongyu");
newcon.setAutoCommit(false);
Statement stmt = newcon.createStatement();
String selstr = "select empno,firstnme,job from employee where empno=000010";
ResultSet rs = stmt.executeQuery(selstr);
while (rs.next()) {
System.out.println(rs.getString(1) + "\t" + rs.getString(2) + "\t" + rs.getString(3));
}
newcon.commit();
rs.close();
stmt.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
执行结果:
000010 CHRISTINE PRES